﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using WPF项目.Common.Models;
using WPF项目.Extensions;

namespace WPF项目.ViewModels
{
   public class InstallViweModel:BindableBase
    {
        private IRegionManager regionManager;
        public InstallViweModel(IRegionManager regionManager) {
            Menus = new ObservableCollection<MenuBar>();
           this.regionManager = regionManager;
            NavigateCommand = new DelegateCommand<MenuBar>(Navigate);
            CreateMenu();
        }
        private ObservableCollection<MenuBar> menus;//INotifyCollectionChanged接口的数据集合类型，当集合中的内容发生变化时，它会自动通知绑定的 UI 元素进行更新。
       
        //这两个接口通常用于管理应用程序中的区域（regions）和导航历史记录
        public DelegateCommand<MenuBar> NavigateCommand { get; private set; }
        private IRegionNavigationJournal journal;
        public ObservableCollection<MenuBar> Menus
        {
            get { return menus; }
            set
            {
                menus = value;
                RaisePropertyChanged();
            }
        }
        //以便绑定到这个属性的 UI 元素能够自动更新显示。这样可以确保当Menus


        private void Navigate(MenuBar menu)
        {
            if (menu == null || string.IsNullOrWhiteSpace(menu.NamesPace))//string.IsNullOrWhiteSpace判断字段是否为null
                return;

            regionManager.Regions[PrismManager.SettingsViewRegionName].RequestNavigate(menu.NamesPace);
        }
        void CreateMenu()
        {
            Menus.Add(new MenuBar() { Icon = "Home", Title = "个性化", NamesPace = "SkinView" });
            Menus.Add(new MenuBar() { Icon = "CalendarTextOutline", Title = "系统设置", NamesPace = "" });
            Menus.Add(new MenuBar() { Icon = "Notebook", Title = "关于更多", NamesPace = "AboutView" });
        }
    }
}
